#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>

//struct ListNode {
//    int val;
//    struct ListNode *next;
//    ListNode(int x) : val(x), next(NULL) {}
//};
//
//class PalindromeList {
//public:
//    bool chkPalindrome(ListNode* A) {
//        ListNode* fast = A;
//        ListNode* slow = A;
//        while (fast && fast->next)
//        {
//            fast = fast->next->next;
//            slow = slow->next;
//        }
//        ListNode* back = (ListNode*)malloc(sizeof(ListNode));
//        back = NULL;
//        ListNode* tem = NULL;
//        while (slow)
//        {
//            tem = slow->next;
//            slow->next = back;
//            back = slow;
//            slow = tem;
//        }
//        while (back)
//        {
//            if (back->val != A->val)
//                return false;
//            back = back->next;
//            A = A->next;
//        }
//        return true;
//    }
//};